Some embodiments described herein relate generally to methods and apparatus for migrating virtual machines between oversubscribed compute devices and undersubscribed compute devices in an enterprise. Such methods and apparatus can include, for example, the instantiation of new virtual machines and the migration of virtual machines that already exist, based on, for example, a prediction of resource-intensive events prior to their manifestation.
One of the advantages of server (or host machine) virtualization is the ability to better use the physical resources in an enterprise network system such as, for example, the central processing unit (CPU), random access memory (RAM), hard disk, network bandwidth, and/or the like. For example, given a physical server (or host machine) with n CPU cores, where n can be any number, one can effectively run m guest operating systems, where m is greater than n (m>n), inside isolated containers called virtual machines on that server (or host machine). One known method to implement virtual machines is through an undersubscription policy with respect to the CPU and/or other physical resources (also referred to as a “compute device in an undersubscribed configuration” or an “undersubscribed compute device”): the virtual machines are provisioned with a fewer or equal number of CPU's (and/or other physical resources) than physical CPUs (m≦n). Under such a policy, no single virtual machine can adversely affect the performance of other virtual machines running on the same server (or host machine). Given that typical virtual machines rarely consume 100% of their provisioned physical resources, however, all the time an oversubscription policy can be implemented (also referred to as a “compute device in an oversubscribed configuration” or an “oversubscribed compute device”): the virtual machines are provisioned with more CPU's (and/or other physical resources) than physical CPUs. Under such a policy, CPU utilization of the physical hardware in the enterprise can be much higher.
Many cases exist where an oversubscription policy to implement virtual machines are desirable. A virtual machine's life cycle, however, can include instances where an increase in the CPU activity with a guest operating system can adversely affect the performance of other virtual machines running on the same server (or host device). This can lead to unpredictable performance of the virtual machines running on the server (or host device).
Accordingly, a need exists for methods and apparatus for migrating virtual machines between oversubscribed compute devices and undersubscribed compute devices in an enterprise that can include the instantiation (or booting) of new virtual machines, and migration of virtual machines that already exist based on prediction of resource-intensive events prior to their manifestation.